SRC = 'src/main/java/com/google/gerrit/extensions/'
SRCS = glob([SRC + '**/*.java'])

EXT_API_SRCS = glob([SRC + 'client/*.java'])

gwt_module(
  name = 'client',
  srcs = EXT_API_SRCS,
  gwt_xml = SRC + 'Extensions.gwt.xml',
  visibility = ['PUBLIC'],
)

java_library(
  name = 'client-lib',
  srcs = EXT_API_SRCS,
  resources = EXT_API_SRCS + glob([SRC + 'Extensions.gwt.xml']),
  visibility = ['PUBLIC'],
)

java_binary(
  name = 'extension-api',
  deps = [':lib'],
  visibility = ['PUBLIC'],
)

java_library(
  name = 'lib',
  exported_deps = [
    ':api',
    '//lib/guice:guice',
    '//lib/guice:guice-assistedinject',
    '//lib/guice:guice-servlet',
    '//lib:servlet-api-3_1',
  ],
  visibility = ['PUBLIC'],
)

java_library(
  name = 'api',
  srcs = glob([SRC + '**/*.java']),
  provided_deps = [
    '//lib/guice:guice',
    '//lib/guice:guice-assistedinject',
  ],
  visibility = ['PUBLIC'],
)

java_sources(
  name = 'extension-api-src',
  srcs = SRCS,
  visibility = ['PUBLIC'],
)

java_test(
  name = 'api_tests',
  srcs = glob(['src/test/java/**/*.java']),
  deps = [
    ':api',
    '//lib:truth',
    '//lib/guice:guice',
  ],
  source_under_test = [':api'],
)

java_doc(
  name = 'extension-api-javadoc',
  title = 'Gerrit Review Extension API Documentation',
  pkgs = ['com.google.gerrit.extensions'],
  paths = ['src/main/java'],
  srcs = SRCS,
  deps = [
    '//lib/guice:javax-inject',
    '//lib/guice:guice_library',
    '//lib/guice:guice-assistedinject',
  ],
  visibility = ['PUBLIC'],
)
